In some print scenarios, such as print sharing scenarios, a print server has access to one or more print devices which can then be shared among multiple client devices. In order to participate in these scenarios, including print sharing scenarios that make use of a shared printer, client devices utilize a print device driver that is specific to a particular print device. The specific print device driver provides information and functionality that enables the client device to present configuration options to the user, and communicate with the print device and have its content printed out on the print device.
Utilizing specific print device drivers can present various challenges and inject a level of complexity in print sharing scenarios, as well as other scenarios. First, given the vast number of printers on the market, the number of associated specific print device drivers is quite large. Thus, some client devices are typically delivered from device manufacturers with a large number of device-specific drivers. In addition, device-specific drivers can be quite large, thus consuming resources on the client device. This complicates the process of managing and distributing device-specific drivers for device manufacturers. Second, in print sharing and other scenarios, client devices utilize driver code that is compiled for their particular architecture. So, for example, if a client device is running a 64-bit version of an operating system, and the print server is running a 32-bit version of an operating system, the client device will be unable to utilize the print server. This makes large scale sharing difficult because print servers have to ensure that they have the proper software for the various supported processor architectures.